package com.wust.supermarket.dao;

import com.wust.supermarket.domain.Instock;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface InstockDao {
    /**
     * 添加入库记录
     *
     * @param instock Instock对象
     * @return 受影响的行数
     */
    int insertInstock(Instock instock);

    /**
     * 更新入库记录
     *
     * @param instock Instock对象
     * @return 受影响的行数
     */
    int updateInstock(Instock instock);


    /**
     * 删除入库记录
     *
     * @param instockId 入库记录id
     * @return 受影响的行数
     */
    int deleteInstockById(String instockId);

    /**
     * 删除某次入库的所有提供商提供的商品
     *
     * @param merchId 商品id
     * @return 受影响的行数
     */
    int deleteInstockByMerchId(int merchId);

    /**
     * @param providerId 提供商id
     * @return 受影响的行数
     */
    int deleteInstockByProviderId(int providerId);

    /**
     * 查询所有入库记录
     *
     * @return List<Instock>
     */
    List<Instock> listAllInstocks();

    /**
     * 根据入库id查询入库记录
     *
     * @param instockId 入库记录id
     * @return 入库记录
     */
    Instock getInstockById(String instockId);

    /**
     * 查询某条商品的所有入库记录
     *
     * @param merchId 商品id
     * @return List<Instock>
     */
    List<Instock> listInstockByMerchId(int merchId);

    /**
     * 查询某个供应商的所有入库记录
     *
     * @param providerId 提供商id
     * @return List<Instock>
     */
    List<Instock> listInstockByProviderId(int providerId);
}
